package com.trinity.specialpay.service;

import com.trinity.specialpay.domain.CampusActivityStudent;
import com.trinity.specialpay.dto.QueryActivityParamsDto;
import com.trinity.specialpay.dto.QueryActivityStudentsRequestDto;

import java.util.List;

/**
 * 缴费名单Service接口
 *
 * @author trinity
 * @date 2023-11-21
 */
public interface ICampusActivityStudentService {
    /**
     * 查询缴费名单
     *
     * @param payId 缴费名单主键
     * @return 缴费名单
     */
    public CampusActivityStudent selectCampusActivityStudentByPayId(Long payId);

    /**
     * 查询缴费名单列表
     *
     * @param queryActivityParamsDto 缴费名单
     * @return 缴费名单集合
     */
    public List<CampusActivityStudent> selectCampusActivityStudentList(QueryActivityParamsDto queryActivityParamsDto);

    /**
     * 查询缴费名单 - 订单 - 支付记录 列表
     *
     * @param queryActivityParamsDto 查询参数
     * @return 缴费名单集合
     */
    public List<CampusActivityStudent> selectActivityStudentOrderRecordList(QueryActivityStudentsRequestDto queryActivityParamsDto);

    /**
     * 新增缴费名单
     *
     * @param campusActivityStudent 缴费名单
     * @return 结果
     */
    public int insertCampusActivityStudent(CampusActivityStudent campusActivityStudent);

    /**
     * 新增用户角色信息
     *
     * @param actId      活动ID
     * @param studentIds 学生组
     */
    public int batchActStudent(Long actId, Long[] studentIds);

    /**
     * 修改缴费名单
     *
     * @param campusActivityStudent 缴费名单
     * @return 结果
     */
    public int updateCampusActivityStudent(CampusActivityStudent campusActivityStudent);

    /**
     * 批量删除缴费名单
     *
     * @param payIds 需要删除的缴费名单主键集合
     * @return 结果
     */
    public int deleteCampusActivityStudentByPayIds(Long[] payIds);

    /**
     * 删除缴费名单信息
     *
     * @param payId 缴费名单主键
     * @return 结果
     */
    public int deleteCampusActivityStudentByPayId(Long payId);
}
